package com.example.keepserver.repository;

import com.example.keepserver.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

@Repository
public interface UserRepository extends JpaRepository<User, String> {
    
    /**
     * 通过用户ID查找用户
     * @param userId 用户ID
     * @return 用户
     */
    Optional<User> findByUserId(String userId);

    /**
     * 查询前100个用户
     * 注意：需要指定排序条件，否则会返回随机的100个用户
     * @return 前100个用户列表
     */
    List<User> findTop10ByOrderByCreatedAtDesc();
    
    /**
     * 通过电子邮件查找用户
     * @param email 电子邮件
     * @return 用户
     */
    Optional<User> findByEmail(String email);
    
    /**
     * 通过昵称查找用户
     * @param nickname 昵称
     * @return 用户
     */
    Optional<User> findByNickname(String nickname);
    
    /**
     * 检查用户名(昵称)是否存在
     * @param nickname 昵称
     * @return 是否存在
     */
    boolean existsByNickname(String nickname);
    
    /**
     * 检查邮箱是否存在
     * @param email 邮箱
     * @return 是否存在
     */
    boolean existsByEmail(String email);
} 